# image date 7/11/18 - off nadir = 49
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '104001003F0CCB00')
bbox = env.inputs.get('bbox', '-122.63, 41.87, -122.43, 42.02')
#bbox = env.inputs.get('bbox', '-122.622, 41.836, -122.488, 41.925')
image = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image.plot(w=10, h=10)
image = CatalogImage(catalog_id, pansharpen=True, band_type="MS", bbox=map(float, bbox.split(",")))
tiles = []
for x in range(0, image.shape[1], 256):
for y in range(0,image.shape[2], 256):
tiles.append(image[:,x:x+256,y:y+256])
import matplotlib.pyplot as plt
plt.imshow(tiles[len(tiles)/2].rgb())
image.ipe.metadata
np.random.seed(0) #keep same colors
cmap = matplotlib.colors.ListedColormap(np.random.rand(256,3))
plt.figure(figsize=(10,10))
plt.imshow(img_segmented, cmap=cmap)
print "Number of segments:", np.max(img_segmented)
#image date 6/21/18
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '104001003EB8F400')
bbox = env.inputs.get('bbox', '-122.63, 41.87, -122.43, 42.02')
image = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image.plot(w=10, h=10)
# 7/3/18
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '104001003FB24500')
bbox = env.inputs.get('bbox', '-105.235, 37.585, -105.148, 37.638')
#bbox = env.inputs.get('bbox', '-105.31, 37.39, -105.00, 37.69')
#bbox = env.inputs.get('bbox', '-105.366, 37.362, -105.042, 37.612')
image = CatalogImage(catalog_id, band_type="MS", pansharpen=True, bbox=map(float, bbox.split(",")))
#image.plot(w=10, h=10)
image.ipe.metadata['image']['offNadirAngle']
tiles = []
for x in range(0, image.shape[1], 256):
for y in range(0,image.shape[2], 256):
tiles.append(image[:,x:x+256,y:y+256])
tiles[len(tiles)/2].plot()
rgb = tiles[len(tiles)/2].rgb()
from skimage import transform, feature, segmentation, util, filters, exposure, morphology, data, io, measure, color, img_as_bool
img_segmented = segmentation.slic(rgb, n_segments=1000, compactness=10, sigma=1)
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(0) #keep same colors
cmap = matplotlib.colors.ListedColormap(np.random.rand(256,3))
plt.figure(figsize=(10,10))
plt.imshow(img_segmented, cmap=cmap)
print "Number of segments:", np.max(img_segmented)
!pip install git+https://github.com/aalten77/nbburntbuildings.git@master -q
import nbburntbuildings
sp = plt.figure(figsize=(15,15))
nbburntbuildings.plot_array(segmentation.mark_boundaries(rgb, img_segmented), (1,1,1), title="Segmentation mask")
_ = plt.plot()
import random
tiles_random = random.sample(tiles, 61)
import tqdm
segmented_images = [segmentation.slic(tile.rgb(), n_segments=1000, compactness=10, sigma=1) for tile in tqdm.tqdm_notebook(tiles_random)]
print [np.max(segs)+1 for segs in segmented_images]
print "Total number of segments:", sum([np.max(segs)+1 for segs in segmented_images])
len(segmented_images)
import shapely
from shapely.geometry import Polygon, mapping, shape, MultiPolygon, box
from rasterio import features
segment_mask = segmented_images[0].astype(np.uint16)
list_of_shapes = []
for i, seg_img in enumerate(tqdm.tqdm_notebook(segmented_images)):
segment_mask = seg_img.astype(np.uint16)
list_of_shapes.append([(shapely.geometry.shape(g), v) for g, v in features.shapes(segment_mask, mask=None, transform=tiles_random[i].affine)])
print [len(segs) for segs in list_of_shapes]
print "Total number of shapes:", sum([len(segs) for segs in list_of_shapes])
len(list_of_shapes)
type(list_of_shapes[0])
def to_geojson(shapes_list):
#append burn scar region polygons to geojson
if type(shapes_list) == list:
results = ({
'type': 'Feature',
'properties': {'raster_val': v, 'color': 'red'},
'geometry': s.__geo_interface__}
for i, (s, v)
in enumerate(shapes_list))
else:
results = ({
'type': 'Feature',
'properties': {'raster_val': v, 'color': 'red'},
'geometry': s}
for i, (s, v)
in enumerate(shapes_list))
list_results = list(results)
collection = {
'type': 'FeatureCollection',
'features': list_results,
'properties': {'catalog_id':'1030010078AA6A00', 'fire_name':'Thomas Fire', 'location':'Ventura, CA'},
'crs': {'type':'EPSG', 'properties':{'code':4326}}
}
return collection
gj = to_geojson(list_of_shapes[0])
import json
for i, shapes in enumerate(list_of_shapes):
gj = to_geojson(shapes)
with open('./wildfire_geojsons/SpringCreekFire/SpringCreekFire_{}.json'.format(i), 'w') as f:
json.dump(gj, f)
!pwd
len(shapes3)
# 7/3/18 - SWIR?
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '104A01003FB24500')
bbox = env.inputs.get('bbox', '-105.366, 37.362, -105.042, 37.612')
image = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image.plot(w=10, h=10)
# 7/14/18
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '1030010081CC5E00')
bbox = env.inputs.get('bbox', '-105.31, 37.39, -105.00, 37.69')
#bbox = env.inputs.get('bbox', '-105.366, 37.362, -105.042, 37.612')
image = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image.plot(w=10, h=10)
# 7/14/18 - off nadir = 51 clouds 75%?
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '104001003F4FEC00')
bbox = env.inputs.get('bbox', '-117.678, 41.522, -117.369, 41.732')
image = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image.plot(w=10, h=10)
# 7/14/18 - SWIR?
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '104A01003F4FEC00')
bbox = env.inputs.get('bbox', '-117.678, 41.522, -117.369, 41.732')
image = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image.plot(w=10, h=10)
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '103001007F9C2F00')
bbox = env.inputs.get('bbox', '-120.22, 44.05, -120.16, 44.09')
image = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image.plot(w=10, h=10)
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '103001007F214F00')
bbox = env.inputs.get('bbox', '-120.392, 43.895, -120.048, 44.231')
image = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
#image.plot(w=10, h=10)
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '104001003F384F00')
bbox = env.inputs.get('bbox', '-111.055, 40.036, -110.903, 40.136')
image = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image.plot(w=10, h=10)
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '104A01003F384F00')
bbox = env.inputs.get('bbox', '-111.055, 40.036, -110.903, 40.136')
image = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image.plot(w=10, h=10)
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '104001003F762100')
bbox = env.inputs.get('bbox', '-111.055, 40.036, -110.903, 40.136')
image = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image.plot(w=10, h=10)
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '104A01003F762100')
bbox = env.inputs.get('bbox', '-111.055, 40.036, -110.903, 40.136')
image = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image.plot(w=10, h=10)
catalog_id = env.inputs.get('catalog_id', '1030010078AA6A00')
bbox = (-119.307, 34.283, -119.283, 34.345) #north ventura ave
#bbox = (-119.298, 34.276, -119.171, 34.338)
image = CatalogImage(catalog_id, pansharpen=True, band_type="MS", bbox=bbox)
image_unsharp = CatalogImage(catalog_id, band_type="MS", bbox=bbox)
image_unsharp.plot(w=10, h=10)
image.shape
tiles = []
for x in range(0, image.shape[1], 512):
for y in range(0,image.shape[2], 512):
tiles.append(image[:,x:x+512,y:y+512])
len(tiles)
tiles[150].plot()
rgb = tiles[150].rgb()
img_segmented = segmentation.slic(rgb, n_segments=1500, compactness=10, sigma=1)
np.random.seed(0) #keep same colors
cmap = matplotlib.colors.ListedColormap(np.random.rand(256,3))
plt.figure(figsize=(10,10))
plt.imshow(img_segmented, cmap=cmap)
print "Number of segments:", np.max(img_segmented)
sp = plt.figure(figsize=(15,15))
nbburntbuildings.plot_array(segmentation.mark_boundaries(rgb, img_segmented), (1,1,1), title="Segmentation mask")
_ = plt.plot()
import random
tiles_random = random.sample(tiles, int(len(tiles)*0.25))
import tqdm
segmented_images = [segmentation.slic(tile.rgb(), n_segments=1500, compactness=10, sigma=1) for tile in tqdm.tqdm_notebook(tiles_random)]
list_of_shapes = []
for i, seg_img in enumerate(tqdm.tqdm_notebook(segmented_images)):
segment_mask = seg_img.astype(np.uint16)
list_of_shapes.append([(shapely.geometry.shape(g), v) for g, v in features.shapes(segment_mask, mask=None, transform=tiles_random[i].affine)])
import json
for i, shapes in enumerate(list_of_shapes):
gj = to_geojson(shapes)
with open('./wildfire_geojsons/ThomasFire/ThomasFire_NVenturaAve_2018-01-21_{}.json'.format(i), 'w') as f:
json.dump(gj, f)
print image.ipe.metadata['image']['acquisitionDate']
print image.ipe.metadata['image']['offNadirAngle']
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '1040010037B72800')
bbox = env.inputs.get('bbox', '-119.526, 34.328, -119.183, 34.518')
image = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image.plot(w=10, h=10)
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '103001007430ED00')
bbox = env.inputs.get('bbox', '-119.526, 34.328, -119.183, 34.518')
image = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image.plot(w=10, h=10)
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '10300100742EFD00')
bbox = env.inputs.get('bbox', '-119.526, 34.328, -119.183, 34.518')
image = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image.plot(w=10, h=10)
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '1040010038C48400')
bbox = env.inputs.get('bbox', '-119.526, 34.328, -119.183, 34.518')
image = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image.plot(w=10, h=10)
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '10400100396E7200')
bbox = env.inputs.get('bbox', '-119.526, 34.328, -119.183, 34.518')
image = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image.plot(w=10, h=10)
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '103001007FC47500')
bbox = env.inputs.get('bbox', '-119.526, 34.328, -119.183, 34.518')
image = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image.plot(w=10, h=10)
catalog_id = env.inputs.get('catalog_id', '1040010036A01800') # off-nadir 29, 1/13/18
bbox = ( -119.994, 34.461, -119.865, 34.603)
image = CatalogImage(catalog_id, pansharpen=True, band_type="MS", bbox=bbox)
#image_unsharp = CatalogImage(catalog_id, band_type="MS", bbox=bbox)
#image_unsharp.plot(w=10, h=10)
image.shape
tiles = []
for x in range(0, image.shape[1], 1024):
for y in range(0,image.shape[2], 1024):
tiles.append(image[:,x:x+1024,y:y+1024])
len(tiles)
tiles[1000].plot()
rgb = tiles[1000].rgb()
img_segmented = segmentation.slic(rgb, n_segments=3000, compactness=10, sigma=1)
np.random.seed(0) #keep same colors
cmap = matplotlib.colors.ListedColormap(np.random.rand(256,3))
plt.figure(figsize=(10,10))
plt.imshow(img_segmented, cmap=cmap)
print "Number of segments:", np.max(img_segmented)
sp = plt.figure(figsize=(15,15))
nbburntbuildings.plot_array(segmentation.mark_boundaries(rgb, img_segmented), (1,1,1), title="Segmentation mask")
_ = plt.plot()
import random
tiles_random = random.sample(tiles, int(len(tiles)*0.05))
import tqdm
segmented_images = [segmentation.slic(tile.rgb(), n_segments=3000, compactness=10, sigma=1) for tile in tqdm.tqdm_notebook(tiles_random)]
list_of_shapes = []
for i, seg_img in enumerate(tqdm.tqdm_notebook(segmented_images)):
segment_mask = seg_img.astype(np.uint16)
list_of_shapes.append([(shapely.geometry.shape(g), v) for g, v in features.shapes(segment_mask, mask=None, transform=tiles_random[i].affine)])
import json
for i, shapes in enumerate(list_of_shapes):
gj = to_geojson(shapes)
with open('./wildfire_geojsons/WhittierFire/WhittierFire_2018-01-13_{}.json'.format(i), 'w') as f:
json.dump(gj, f)
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '104001003473E900')
bbox = env.inputs.get('bbox', '-122.758, 38.47, -122.741, 38.485')
image = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image.plot(w=10, h=10)
print image.ipe.metadata['image']['acquisitionDate']
print image.ipe.metadata['image']['offNadirAngle']
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '1040010038A0A900')
bbox = env.inputs.get('bbox', '-122.711, 38.476, -122.686, 38.494') #fountaingrove - big
#bbox = env.inputs.get('bbox', '-122.705, 38.477, -122.698, 38.489') #fountaingrove - small
#bbox = env.inputs.get('bbox', '-122.758, 38.47, -122.741, 38.485')#coffey park
image = CatalogImage(catalog_id, pansharpen=True, band_type="MS", bbox=map(float, bbox.split(",")))
image_unsharp = CatalogImage(catalog_id, band_type="MS", bbox=map(float,bbox.split(",")))
image_unsharp.plot(w=10, h=10)
rgb = image.rgb()
img_segmented = segmentation.slic(rgb, n_segments=3000, compactness=10, sigma=1)
np.random.seed(0) #keep same colors
cmap = matplotlib.colors.ListedColormap(np.random.rand(256,3))
plt.figure(figsize=(10,10))
plt.imshow(img_segmented, cmap=cmap)
print "Number of segments:", np.max(img_segmented)
sp = plt.figure(figsize=(15,15))
nbburntbuildings.plot_array(segmentation.mark_boundaries(rgb, img_segmented, outline_color=(255, 255, 0)), (1,1,1), title="Segmentation mask")
_ = plt.plot()
binary_bool = img_segmented.astype(np.uint16)
#simplify geometries before storing as shapes
shapes3 = [(shapely.geometry.shape(g), v) for g, v in features.shapes(binary_bool, mask=None, transform=image.affine)]
gj = to_geojson(shapes3)
!pwd
with open('./wildfire_geojsons/October2017NorthernCaliforniaFires/Tubbs/Fountaingrove.json', 'w') as f:
json.dump(gj, f)
print image.ipe.metadata['image']['acquisitionDate']
print image.ipe.metadata['image']['offNadirAngle']
#bbox = (-122.705, 38.477, -122.698, 38.489)
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '104A010033B40500')
bbox = env.inputs.get('bbox', '-122.761, 38.464, -122.666, 38.574')
image = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image.plot(w=10, h=10)
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '10400100391B4800')
bbox = env.inputs.get('bbox', '-122.535, 38.332, -122.466, 38.408')
image = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image.plot(w=10, h=10)
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '104001003883FB00')
bbox = env.inputs.get('bbox', '-122.535, 38.332, -122.466, 38.408')
image = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image.plot(w=10, h=10)
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '1040010030488100')
bbox = env.inputs.get('bbox', '-113.565, 47.157, -113.304, 47.352')
image = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image.plot(w=10, h=10)
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '104A010030488100')
bbox = env.inputs.get('bbox', '-113.565, 47.157, -113.304, 47.352')
image = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image.plot(w=10, h=10)
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '1040010030B22500')
bbox = env.inputs.get('bbox', '-113.565, 47.157, -113.304, 47.352')
image = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image.plot(w=10, h=10)
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '104A010030B22500')
bbox = env.inputs.get('bbox', '-113.565, 47.157, -113.304, 47.352')
image = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image.plot(w=10, h=10)
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '1030010020C26600')
bbox = env.inputs.get('bbox', '-104.946, 38.877, -104.847, 38.979')
image = CatalogImage(catalog_id, pansharpen=True, band_type="MS", bbox=map(float, bbox.split(",")))
image_unsharp = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image_unsharp.plot(w=10, h=10)
tiles = []
for x in range(0, image.shape[1], 512):
for y in range(0,image.shape[2], 512):
tiles.append(image[:,x:x+512,y:y+512])
tiles[0].plot()
rgb_temp = tiles[0].rgb()
img_segmented = segmentation.slic(rgb_temp, n_segments=1000, compactness=10, sigma=1)
np.random.seed(0) #keep same colors
cmap = matplotlib.colors.ListedColormap(np.random.rand(256,3))
plt.figure(figsize=(10,10))
plt.imshow(img_segmented, cmap=cmap)
print "Number of segments:", np.max(img_segmented)
sp = plt.figure(figsize=(15,15))
nbburntbuildings.plot_array(segmentation.mark_boundaries(rgb_temp, img_segmented), (1,1,1), title="Segmentation mask")
_ = plt.plot()
import random
tiles_random = random.sample(tiles, 75)
import tqdm
segmented_images = [segmentation.slic(tile.rgb(), n_segments=1000, compactness=10, sigma=1) for tile in tqdm.tqdm_notebook(tiles_random)]
list_of_shapes = []
for i, seg_img in enumerate(tqdm.tqdm_notebook(segmented_images)):
segment_mask = seg_img.astype(np.uint16)
list_of_shapes.append([(shapely.geometry.shape(g), v) for g, v in features.shapes(segment_mask, mask=None, transform=tiles_random[i].affine)])
import json
for i, shapes in enumerate(list_of_shapes):
gj = to_geojson(shapes)
with open('./wildfire_geojsons/WaldoCanyonFire/WaldoCanyonFire_2013-03-07_{}.json'.format(i), 'w') as f:
json.dump(gj, f)
print image.shape
print image.ipe.metadata['image']['acquisitionDate']
print image.ipe.metadata['image']['offNadirAngle']
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '103001001C6E7600')
bbox = env.inputs.get('bbox', '-104.946, 38.877, -104.847, 38.979')
image = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image.plot(w=10, h=10)
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '103001001A4D9400')
bbox = env.inputs.get('bbox', '-104.946, 38.877, -104.847, 38.979')
image = CatalogImage(catalog_id, pansharpen=True, band_type="MS", bbox=map(float, bbox.split(",")))
image_unsharp = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image_unsharp.plot(w=10, h=10)
tiles = []
for x in range(0, image.shape[1], 512):
for y in range(0,image.shape[2], 512):
tiles.append(image[:,x:x+512,y:y+512])
len(tiles)
tiles[0].plot()
rgb_temp = tiles[0].rgb()
img_segmented = segmentation.slic(rgb_temp, n_segments=1000, compactness=10, sigma=1)
np.random.seed(0) #keep same colors
cmap = matplotlib.colors.ListedColormap(np.random.rand(256,3))
plt.figure(figsize=(10,10))
plt.imshow(img_segmented, cmap=cmap)
print "Number of segments:", np.max(img_segmented)
sp = plt.figure(figsize=(15,15))
nbburntbuildings.plot_array(segmentation.mark_boundaries(rgb_temp, img_segmented), (1,1,1), title="Segmentation mask")
_ = plt.plot()
import random
tiles_random = random.sample(tiles, 75)
import tqdm
segmented_images = [segmentation.slic(tile.rgb(), n_segments=1000, compactness=10, sigma=1) for tile in tqdm.tqdm_notebook(tiles_random)]
list_of_shapes = []
for i, seg_img in enumerate(tqdm.tqdm_notebook(segmented_images)):
segment_mask = seg_img.astype(np.uint16)
list_of_shapes.append([(shapely.geometry.shape(g), v) for g, v in features.shapes(segment_mask, mask=None, transform=tiles_random[i].affine)])
import json
for i, shapes in enumerate(list_of_shapes):
gj = to_geojson(shapes)
with open('./wildfire_geojsons/WaldoCanyonFire/WaldoCanyonFire_2012-07-04_{}.json'.format(i), 'w') as f:
json.dump(gj, f)
print image.shape
print image.ipe.metadata['image']['acquisitionDate']
print image.ipe.metadata['image']['offNadirAngle']
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '1030010025B48D00')
bbox = env.inputs.get('bbox', '-104.946, 38.877, -104.847, 38.979')
image = CatalogImage(catalog_id, pansharpen=True, band_type="MS", bbox=map(float, bbox.split(",")))
image_unsharp = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image_unsharp.plot(w=10, h=10)
print image.shape
print image.ipe.metadata['image']['acquisitionDate']
print image.ipe.metadata['image']['offNadirAngle']
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '103001001A146800')
bbox = env.inputs.get('bbox', '-104.946, 38.877, -104.847, 38.979')
image = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image.plot(w=10, h=10)
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '1030010020881E00')
bbox = env.inputs.get('bbox', '-97.303, 30.064, -97.175, 30.243')
image = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image.plot(w=10, h=10)
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '103001000D400700')
bbox = env.inputs.get('bbox', '-97.2677997, 30.064, -97.175, 30.243')
image = CatalogImage(catalog_id, pansharpen=True, band_type="MS", bbox=map(float, bbox.split(",")))
image_unsharp = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image_unsharp.plot(w=10, h=10)
tiles = []
for x in range(0, image.shape[1], 512):
for y in range(0,image.shape[2], 512):
tiles.append(image[:,x:x+512,y:y+512])
len(tiles)
tiles[850].plot()
import random
tiles_random = random.sample(tiles, 180)
import tqdm
segmented_images = [segmentation.slic(tile.rgb(), n_segments=1000, compactness=10, sigma=1) for tile in tqdm.tqdm_notebook(tiles_random)]
list_of_shapes = []
for i, seg_img in enumerate(tqdm.tqdm_notebook(segmented_images)):
segment_mask = seg_img.astype(np.uint16)
list_of_shapes.append([(shapely.geometry.shape(g), v) for g, v in features.shapes(segment_mask, mask=None, transform=tiles_random[i].affine)])
import json
for i, shapes in enumerate(list_of_shapes):
gj = to_geojson(shapes)
with open('./wildfire_geojsons/BastropCountyComplexFire/BastropCountyComplexFire_2011-09-07_{}.json'.format(i), 'w') as f:
json.dump(gj, f)
print image.shape
print image.ipe.metadata['image']['acquisitionDate']
print image.ipe.metadata['image']['offNadirAngle']
from gbdxtools.task import env
from gbdxtools import CatalogImage
%matplotlib inline
catalog_id = env.inputs.get('catalog_id', '103001000E868200')
bbox = env.inputs.get('bbox', '-97.294, 30.129, -97.17, 30.291')
image = CatalogImage(catalog_id, band_type="MS", bbox=map(float, bbox.split(",")))
image.plot(w=10, h=10)